package pe.gob.osce.sirenas.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;


public class FichaArbitralDTO  implements Serializable,Cloneable{

	private static final long serialVersionUID = 7272237788722650202L;

	private Long idFicha;
	private Long idPersona;
	private String  numFicha;	
	private String tipoFicha;
	
	private Integer  indModalidadArbitro;	
	private String modalidadArbitro;
	private Date fechaModalidad;
	private Long idEstadoFicha;
	public Boolean esPendiente=false;
	public Boolean enFiscalizacion=false;
	private Long idFiscalizacion;
	private Long estado;
	
	private HistorialEstadoDTO estadoFicha;

	private AuditoriaDTO auditoria;
		
	private PersonaDTO persona=new PersonaDTO();
	
	Map<String,List<FormacionAcademicaDTO>> mapaFormacionAcademica = new HashMap<String,List<FormacionAcademicaDTO>>();

	public Map<String,List<FormacionAcademicaDTO>> getProductMap() {
	   return mapaFormacionAcademica;
	}


//	public List<FormacionAcademicaDTO> getProducts() {
//	   List<FormacionAcademicaDTO> products = new ArrayList<FormacionAcademicaDTO>();
//	   products = (ArrayList) mapaFormacionAcademica.values();
//	   return products;
//	}


	/**
	 * @return the esPendiente
	 */
	public Boolean getEsPendiente() {
		return esPendiente;
	}


	/**
	 * @param esPendiente the esPendiente to set
	 */
	public void setEsPendiente(Boolean esPendiente) {
		this.esPendiente = esPendiente;
	}


	public List<Map.Entry<String, List<FormacionAcademicaDTO>>> getMapaFormacionAcademica() {
	    Set<Map.Entry<String, List<FormacionAcademicaDTO>>> formacionSet = mapaFormacionAcademica.entrySet();
	    return new ArrayList<Map.Entry<String, List<FormacionAcademicaDTO>>>(formacionSet);
	}
	
	/**
	 * @return the mapaFormacionAcademica
	 */
//	public Map<String, List<FormacionAcademicaDTO>> getMapaFormacionAcademica() {
//		return mapaFormacionAcademica;
//	}

	
	/**
	 * @param mapaFormacionAcademica the mapaFormacionAcademica to set
	 */
	public void setMapaFormacionAcademica(
			Map<String, List<FormacionAcademicaDTO>> mapaFormacionAcademica) {
		this.mapaFormacionAcademica = mapaFormacionAcademica;
	}

	public FichaArbitralDTO clone() {
		 
		FichaArbitralDTO emp = null;
        try {
            emp = (FichaArbitralDTO) super.clone();
        } catch (CloneNotSupportedException e) {
            System.out.println(e);
        }
        return emp;
    }

	/**
	 * @return the idFicha
	 */
	public Long getIdFicha() {
		return idFicha;
	}

	/**
	 * @param idFicha the idFicha to set
	 */
	public void setIdFicha(Long idFicha) {
		this.idFicha = idFicha;
	}

	/**
	 * @return the idPersona
	 */
	public Long getIdPersona() {
		return idPersona;
	}

	/**
	 * @param idPersona the idPersona to set
	 */
	public void setIdPersona(Long idPersona) {
		this.idPersona = idPersona;
	}

	/**
	 * @return the numFicha
	 */
	public String getNumFicha() {
		return numFicha;
	}

	/**
	 * @param numFicha the numFicha to set
	 */
	public void setNumFicha(String numFicha) {
		this.numFicha = numFicha;
	}

	/**
	 * @return the indModalidadArbitro
	 */
	public Integer getIndModalidadArbitro() {
		return indModalidadArbitro;
	}

	/**
	 * @param indModalidadArbitro the indModalidadArbitro to set
	 */
	public void setIndModalidadArbitro(Integer indModalidadArbitro) {
		this.indModalidadArbitro = indModalidadArbitro;
	}

	/**
	 * @return the fechaModalidad
	 */
	public Date getFechaModalidad() {
		return fechaModalidad;
	}

	/**
	 * @param fechaModalidad the fechaModalidad to set
	 */
	public void setFechaModalidad(Date fechaModalidad) {
		this.fechaModalidad = fechaModalidad;
	}

	/**
	 * @return the idEstadoFicha
	 */
	public Long getIdEstadoFicha() {
		return idEstadoFicha;
	}

	/**
	 * @param idEstadoFicha the idEstadoFicha to set
	 */
	public void setIdEstadoFicha(Long idEstadoFicha) {
		this.idEstadoFicha = idEstadoFicha;
	}

	/**
	 * @return the estado
	 */
	public Long getEstado() {
		return estado;
	}

	/**
	 * @param estado the estado to set
	 */
	public void setEstado(Long estado) {
		this.estado = estado;
	}

	/**
	 * @return the auditoria
	 */
	public AuditoriaDTO getAuditoria() {
		return auditoria;
	}

	/**
	 * @param auditoria the auditoria to set
	 */
	public void setAuditoria(AuditoriaDTO auditoria) {
		this.auditoria = auditoria;
	}

	/**
	 * @return the modalidadArbitro
	 */
	public String getModalidadArbitro() {
		return modalidadArbitro;
	}

	/**
	 * @param modalidadArbitro the modalidadArbitro to set
	 */
	public void setModalidadArbitro(String modalidadArbitro) {
		this.modalidadArbitro = modalidadArbitro;
	}

	/**
	 * @return the persona
	 */
	public PersonaDTO getPersona() {
		return persona;
	}

	/**
	 * @param persona the persona to set
	 */
	public void setPersona(PersonaDTO persona) {
		this.persona = persona;
	}


	/**
	 * @return the estadoFicha
	 */
	public HistorialEstadoDTO getEstadoFicha() {
		return estadoFicha;
	}


	/**
	 * @param estadoFicha the estadoFicha to set
	 */
	public void setEstadoFicha(HistorialEstadoDTO estadoFicha) {
		this.estadoFicha = estadoFicha;
	}


	/**
	 * @return the tipoFicha
	 */
	public String getTipoFicha() {
		return tipoFicha;
	}


	/**
	 * @param tipoFicha the tipoFicha to set
	 */
	public void setTipoFicha(String tipoFicha) {
		this.tipoFicha = tipoFicha;
	}


	/**
	 * @return the enFiscalizacion
	 */
	public Boolean getEnFiscalizacion() {
		return enFiscalizacion;
	}


	/**
	 * @param enFiscalizacion the enFiscalizacion to set
	 */
	public void setEnFiscalizacion(Boolean enFiscalizacion) {
		this.enFiscalizacion = enFiscalizacion;
	}


	/**
	 * @return the idFiscalizacion
	 */
	public Long getIdFiscalizacion() {
		return idFiscalizacion;
	}


	/**
	 * @param idFiscalizacion the idFiscalizacion to set
	 */
	public void setIdFiscalizacion(Long idFiscalizacion) {
		this.idFiscalizacion = idFiscalizacion;
	}

}
